#include<iostream>
#include<unordered_map>
using namespace std;
const int N=10000;

int n;
int m;
int han[N];
int path[N];
int st[N];
int ans;
int flag;
void dfs(int x)
{
    if(flag==1)return ;//提前终止递归
   if(x>n)
   {
    ans++;
    if(ans==m+1)
    {
    for(int i=1;i<=n;i++)
    {
        printf("%d ",path[i]);
    }
     flag=1;
    }
    return ;
   }
   for(int i=1;i<=n;i++)
   {
    if(ans==0)
    {
        i=han[x];
    }
    if(st[i]==0)
    {
        st[i]=1;
        path[x]=i;
        dfs(x+1);
        path[x]=0;
        st[i]=0;
    }
   }
}
int main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
{
  scanf("%d",&han[i]);
}
dfs(1);
    return 0;
}